#include "ldo.h"

#if (CONFIG_IC_TYPE == CHIP_SS888X)
void ldo_init(void) {
#if (LDO_MODULE || (GPIO_P01_NTC_MODE == NTC) || (GPIO_P16_NTC_MODE == NTC))
    uint8_t val = BGREN;
    #if ((LDO_MODULE == HIGH_PRECISION_MODE) || (GPIO_P01_NTC_MODE == NTC) || (GPIO_P16_NTC_MODE == NTC))
        val |= IBIASEN;
    #endif
    // first enable IBIASEN/BGREN
    MODIFY_EFR_REG(LDOCON0, LDOCON0_CLR, val);

    #if (LDO_MODULE == LOW_POWER_MODE)
        SET_EFR_BIT(LDOCON0, (LDO_EN | LDO_VSET));
    #elif (LDO_MODULE == NORMAL_MODE)
        SET_EFR_BIT(LDOCON0, (LDO_EN | OCEN | LDO_VSET | LDO_OC_ISET));
    #elif (LDO_MODULE == HIGH_PRECISION_MODE)
        SET_EFR_BIT(LDOCON0, (LDO_EN | OCEN | LDO_VSET | LDO_OC_ISET));
        SET_EFR_REG(LDOCON1, LDO_OCMODE);
    #endif
    #if (LDO_TRANSIENT_RESPONSE)
        SET_EFR_REG(LDOCON1, LDO_HSEL);
    #endif
#endif
}

void ldo_exit(void) {
    
}
#endif